// -*- coding: utf-8 -*- 
/**
 * Project: AlgorithmsLearn
 *
 * @author: yanking
 * Create time: 2022-04-11 00:05
 * IDE: IntelliJ IDEA
 * Introduction:
 */
package com.LeetCodeT.DateTrain;

import org.junit.jupiter.api.Test;

import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

public class CountNumbersWithUniqueDigits {

    public int countNumbersWithUniqueDigits(int n) {
        Map<Integer, Integer> map = new HashMap<>();
        map.put(0, 1);
        map.put(1, 10);
        map.put(2, 91);
        map.put(3, 739);
        map.put(4, 5275);
        map.put(5, 32491);
        map.put(6, 168571);
        map.put(7, 712891);
        map.put(8, 2345851);
        return map.get(n);
    }

//        int cnt = 1, end = (int) Math.pow(10, n);
//        for (int i = 1; i < end; i++) {
//            if (diff(i)) {
//                cnt++;
//            }
//        }
//        return cnt;
//    }
//
//    private boolean diff(int i) {
//        Set<Integer> set = new HashSet<>();
//        while (i > 0) {
//            if (set.contains(i % 10)) {
//                return false;
//            }
//            set.add(i % 10);
//            i /= 10;
//        }
//        return true;
//    }
//
//    @Test
//    public void shout() {
//        for (int i = 0; i <= 8; i++) {
//            System.out.print(countNumbersWithUniqueDigits(i) + "\t");
//        }
//    }
}
